#pragma once

#include "Hazel.h"
#include <spdlog/spdlog.h>
#include <memory>

namespace Hazel {

    class Log {
    public:
        static void Init();
        static void Info(const std::string& message);
        static void Warn(const std::string& message);
        static void Error(const std::string& message);
        
    private:
        static std::shared_ptr<spdlog::logger> s_CoreLogger;
    };

}

// 日志宏定义
#define HZ_INFO(...)  ::Hazel::Log::Info(__VA_ARGS__)
#define HZ_WARN(...)  ::Hazel::Log::Warn(__VA_ARGS__)
#define HZ_ERROR(...) ::Hazel::Log::Error(__VA_ARGS__)
